Configuration   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 16
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 13
dl 0
loc 16
rs 10
c 0
b 0
f 0
wmc 2

1 Function

Rating   Name   Duplication   Size   Complexity  
A getProperty 0 9 2
1
import { ConfigurationStorageBooleanCallback, getGlobalStorageProvider } from "../browserApi/storageProvider";
2
import { assigned } from "../utils/helpers";
3
4
// website
5
export const SETTINGS_websiteDisplayQuickSearch = 'websiteDisplayQuickSearch';
6
export const SETTINGS_websiteAutoTimeConversion = 'websiteAutoTimeConversion';
7
export const SETTINGS_websiteShowNotificationsCountInTab = 'websiteShowNotificationsCountInTab';
8
export const SETTINGS_websiteHideUnusedTabs = 'websiteHideUnusedTabs';
9
export const SETTINGS_websiteOptimizeListAppearance = 'websiteOptimizeListAppearance';
10
export const SETTINGS_websiteOptimizeFontColors = 'websiteOptimizeFontColors';
11
// anime
12
export const SETTINGS_animeLanguageDisplay = 'animeLanguageDisplay';
13
// requests 
14
export const SETTINGS_requestBeautifyPage = 'requestBeautifyPage';
15
// player
16
export const SETTINGS_playerAutoplayAfterScreenshot = 'playerAutoplayAfterScreenshot';
17
export const SETTINGS_playerAutopauseAfterFocusLost = 'playerAutopauseAfterFocusLost';
18
export const SETTINGS_playerAutoplayAfterFocusGain = 'playerAutoplayAfterFocusGain';
19
// w2g
20
export const SETTINGS_w2gDisplayCharacterCounter = 'w2gDisplayCharacterCounter';
21
export const SETTINGS_w2gAutotoggleHide = 'w2gAutotoggleHide';
22
export const SETTINGS_w2gAutoscrollToUnseen = 'w2gAutoscrollToUnseen';
23
24
class Configuration {
25
    settingsCache: Map<string, boolean>;
26
27
    constructor() {
28
        this.settingsCache = new Map();
29
    }
30
31
    getProperty(key: string, callback: ConfigurationStorageBooleanCallback): void {
32
        if (this.settingsCache.has(key)) {
33
            callback(this.settingsCache.get(key));
34
        }
35
        else {
36
            getGlobalStorageProvider().getDataAsBoolean(key, true, value => {
37
                this.settingsCache.set(key, value);
38
                callback(value);
39
            });
40
        }
41
    }
42
}
43
44
let __globalConfig: Configuration;
45
46
export function getGlobalConfiguration() {
47
    if (!assigned(__globalConfig)) {
48
        __globalConfig = new Configuration();
49
    }
50
51
    return __globalConfig;
52
}
53